package com.cleaningcloud.cld.controller;

import com.cleaningcloud.cld.domain.FinanceReportBI;
import com.cleaningcloud.cld.service.IFinanceReportBIService;
import com.cleaningcloud.common.core.web.controller.BaseController;
import com.cleaningcloud.common.core.web.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * @className 营运报表BI控制类
 * @description //TODO
 * @author Shaw
 * @date: 2025-03-05 17:07
 * @param: //TODO
 */ 
@RestController
@RequestMapping("/financeReportBI")
public class FinanceReportBIController extends BaseController {

    //营运报表BI业务接口
    @Autowired
    private IFinanceReportBIService financeReportBIService;

    //  ====================================合同金额版块====================================
    /**
     * @Author Shaw
     * @Description 合同金额
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIContractMoney")
    public AjaxResult getFinanceReportBIContractMoney(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBIContractMoney(financeReportBI));
    }

    //  ====================================合同金额下钻====================================
    /**
     * @Author Shaw
     * @Description 按区域查询合同金额占比
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIContractMoneyByRegionRate")
    public AjaxResult getFinanceReportBIContractMoneyByRegionRate(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBIContractMoneyByRegionRate(financeReportBI));
    }

    /**
     * @Author Shaw
     * @Description 合同金额列表
     * @date: 2025-04-09 11:57
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIProjectContractMoneyList")
    public AjaxResult getFinanceReportBIProjectContractMoneyList(FinanceReportBI financeReportBI){
        return success(financeReportBIService.getFinanceReportBIProjectContractMoneyList(financeReportBI));
    }

    //  ====================================工资版块====================================
    /**
     * @Author Shaw
     * @Description 工资版块
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBISalarySection")
    public AjaxResult getFinanceReportBISalarySection(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBISalarySection(financeReportBI));
    }

    //  ====================================工资版块下钻====================================
    /**
     * @Author Shaw
     * @Description 按当月查询实际工资(日走势图)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIDownByMonthSalary")
    public AjaxResult getFinanceReportBIDownByMonthSalary(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBIDownByMonthSalary(financeReportBI));
    }

    /**
     * @Author Shaw
     * @Description 按当月查询实际工资(日期列表)
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIDownByMonthSalaryList")
    public AjaxResult getFinanceReportBIDownByMonthSalaryList() {
        return success(financeReportBIService.getFinanceReportBIDownByMonthSalaryList());
    }

    /**
     * @Author Shaw
     * @Description 按区域实际工资占比
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIDownByMonthSalaryRate")
    public AjaxResult getFinanceReportBIDownByMonthSalaryRate(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBIDownByMonthSalaryRate(financeReportBI));
    }

    //  ====================================物资+资产版块====================================
    /**
     * @Author Shaw
     * @Description 物资+资产版块
     * @date: 2025-03-06 16:37
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIMaterialSection")
    public AjaxResult getFinanceReportBIMaterialSection(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBIMaterialSection(financeReportBI));
    }

    //  ====================================税费+抵扣版块====================================
    /**
     * @Author Shaw
     * @Description 税费+抵扣版块
     * @date: 2025-04-09 11:57
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBITaxSection")
    public AjaxResult getFinanceReportBITaxSection(FinanceReportBI financeReportBI){
        return success(financeReportBIService.getFinanceReportBITaxSection(financeReportBI));
    }

    //  ====================================其他费用版块====================================
    /**
     * @Author Shaw
     * @Description 其他费用版块
     * @date: 2025-04-09 11:57
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIExpenditureSection")
    public AjaxResult getFinanceReportBIExpenditureSection(FinanceReportBI financeReportBI){
        return success(financeReportBIService.getFinanceReportBIExpenditureSection(financeReportBI));
    }

    //  ====================================利润版块====================================
    /**
     * @Author Shaw
     * @Description 按当月查询日利润(日走势图)
     * @date: 2025-04-09 12:06
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIDataByProfit")
    public AjaxResult getFinanceReportBIDataByProfit(FinanceReportBI financeReportBI) {
        return success(financeReportBIService.getFinanceReportBIDataByProfit(financeReportBI));
    }

    /**
     * @Author Shaw
     * @Description 利润版块
     * @date: 2025-04-09 11:57
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIProfitSection")
    public AjaxResult getFinanceReportBIProfitSection(FinanceReportBI financeReportBI){
        return success(financeReportBIService.getFinanceReportBIProfitSection(financeReportBI));
    }

    //  ====================================按公司查询账户信息====================================
    /**
     * @Author Shaw
     * @Description 按公司查询账户信息
     * @date: 2025-04-09 11:57
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIAccountInfoList")
    public AjaxResult getFinanceReportBIAccountInfoList(FinanceReportBI financeReportBI){
        return success(financeReportBIService.getFinanceReportBIAccountInfoList(financeReportBI));
    }

    //  ====================================应收+实收版块====================================
    /**
     * @Author Shaw
     * @Description 应收+实收版块
     * @date: 2025-04-09 11:57
     * @param: //TODO
     */
    @GetMapping("/getFinanceReportBIReceivableAndReceipts")
    public AjaxResult getFinanceReportBIReceivableAndReceipts(FinanceReportBI financeReportBI){
        return success(financeReportBIService.getFinanceReportBIReceivableAndReceipts(financeReportBI));
    }

}
